博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java自定义简单标签
阅读量:6572 次
发布时间:2019-06-24

本文共 2477 字,大约阅读时间需要 8 分钟。

 Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用。

下面将以权限的控制为例自定义一个标签:

一、标签类型

 

步骤:

1.自定义一个类PerssionTag 继承SimpleTagSupport(自定义标签一般都会继承这个类)

 

package cn.com.liveuc.privilege.tag;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Set;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.SimpleTagSupport;import cn.com.liveuc.privilege.model.Privilege;import cn.com.liveuc.privilege.model.Resource;import cn.com.liveuc.privilege.model.Role;import cn.com.liveuc.privilege.model.User;/** *  * @作者  wuxiaotie * @邮件  wuxiaotie@iactive.com.cn * @说明   自定义标签 */public class PerssionTag extends SimpleTagSupport {		//自定义标签属性,用于标签传入参数	private String uri;		//接收标签传入的参数	public void setUri(String uri) {		this.uri = uri;	}	@Override	public void doTag() throws JspException, IOException {		//获取用户登陆后保存的Session		PageContext page = (PageContext) this.getJspContext();		User user = (User) page.getSession().getAttribute("login");		//如果用户登陆		if(user != null) {			//用户登陆判断用户权限			List
list = new ArrayList
(); //获取用户的角色 Set
role = user.getRole(); for(Role r:role) { //获取角色对应的权限 Set
privilege = r.getPrivilege(); for(Privilege p:privilege) { //获取权限对应的资源 Set
res = p.getResource(); for(Resource re:res) { list.add(re.getUri()); } } } for(String ur:list) { //判断用户的权限 if(ur.equals(uri)) { this.getJspBody().invoke(null); //有权限输出标签体内容 } } } }}

2.在WEB-INF下创建tld文件描述标签。

"Struts Tags"
2.2.3
s
/wxt
per
cn.com.liveuc.privilege.tag.PerssionTag
scriptless
uri
true
true

3.运用标签

在Jsp页面导入标签:

 
运用标签:
      
用户管理
用户权限包含uri资源的将会输出标签内容。

 

 

 

转载地址:http://yeojo.baihongyu.com/

你可能感兴趣的文章
【COCOS CREATOR 系列教程之二】脚本开发篇&事件监听、常用函数等示例整合
查看>>
Python工程师求职比中秘籍——获取offer有这么多门道
查看>>
Exchange工具07—Http watch
查看>>
SCCM2012 R2实战系列之四:初始化配置
查看>>
win7做wifi服务器
查看>>
[C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
查看>>
细品慢酌QuickTest关键视图(1)
查看>>
用C#完成Swift远程推送通知
查看>>
以数据为核心的SOC3.0时代到来
查看>>
5分钟了解MySQL/MariaDB新特性之索引下推优化
查看>>
python多线程批量远程管理程序
查看>>
“被打”和“北大” 的关联--- 趣味数据挖掘系列之一)
查看>>
db2改归档与备份恢复
查看>>
oracle修改redo log files路径
查看>>
rsync同步工具基础介绍01
查看>>
zabbix企业应用之设置自定义的邮件报警
查看>>
phpHiveAdmin是如何通过Hive/Hadoop工作的
查看>>
专车将成一种”更贵”的“出租车
查看>>
如果这都不算爱?百度知道实战经验分享
查看>>
oracle 中查询一个表的所有字段名以及属性的sql语句应该怎么写?
查看>>